home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / progtool / c / egem_210 / sgem201c / include / sys_gem2.h < prev   
C/C++ Source or Header  |  1995-11-25  |  32KB  |  906 lines

  1. /* ------------------------------------------------------------------- *
  2.  * Module Version       : 2.00                                         *
  3.  * Author               : Andrea Pietsch                               *
  4.  * Programming Language : Pure-C                                       *
  5.  * Copyright            : (c) 1994, Andrea Pietsch, 56727 Mayen        *
  6.  * ------------------------------------------------------------------- */
  7.  
  8. #ifndef __sysgem__
  9. #define __sysgem__
  10.  
  11. /* ------------------------------------------------------------------- */
  12.  
  13. #ifndef __PORTAB__
  14. #include        <portab.h>
  15. #endif
  16. #ifndef __STDIO
  17. #include        <stdio.h>
  18. #endif
  19. #ifndef __EXT
  20. #include        <ext.h>
  21. #endif
  22. #ifndef __AES__
  23. #include        <aes.h>
  24. #endif
  25. #ifndef __VDI__
  26. #include        <vdi.h>
  27. #endif
  28.  
  29. /* -------------------------------------------------------------------
  30.  * Farbicons
  31.  * ------------------------------------------------------------------- */
  32.  
  33. #ifndef G_CICON
  34.  
  35. /* ------------------------------------------------------------------- */
  36.  
  37. typedef struct _cic
  38.   {
  39.     INT         num_planes;
  40.     INT         *col_data;
  41.     INT         *col_mask;
  42.     INT         *sel_data;
  43.     INT         *sel_mask;
  44.     struct _cic *next_res;
  45.   } CICON;
  46.  
  47. /* ------------------------------------------------------------------- */
  48.  
  49. typedef struct
  50.   {
  51.     ICONBLK     monoblk;
  52.     CICON       *mainlist;
  53.   } CICONBLK;
  54.  
  55. /* ------------------------------------------------------------------- */
  56.  
  57. #define G_CICON         33
  58.  
  59. /* ------------------------------------------------------------------- */
  60.  
  61. #endif
  62.  
  63. /* -------------------------------------------------------------------
  64.  * RECT - Zur Beschreibung von Rechtecken
  65.  * ------------------------------------------------------------------- */
  66.  
  67. typedef struct
  68.   {
  69.     INT         x;
  70.     INT         y;
  71.     INT         w;
  72.     INT         h;
  73.   } RECT;
  74.  
  75. /* -------------------------------------------------------------------
  76.  * Cookie-Strukur
  77.  * ------------------------------------------------------------------- */
  78.  
  79. typedef struct
  80.   {
  81.     LONG        id;
  82.     LONG        value;
  83.   } COOKIE;
  84.  
  85. /* -------------------------------------------------------------------
  86.  * Area - Fuer Bildschirmbereiche
  87.  * ------------------------------------------------------------------- */
  88.  
  89. typedef struct
  90.   {
  91.     BOOL        init;
  92.     INT         x;
  93.     INT         y;
  94.     INT         w;
  95.     INT         h;
  96.     LONG        size;
  97.     MFDB        mf;
  98.   } AREA;
  99.  
  100. /* -------------------------------------------------------------------
  101.  * Parameter-Struktur
  102.  * ------------------------------------------------------------------- */
  103.  
  104. #define PAR_HANDLE      0
  105. #define PAR_CHARW       1
  106. #define PAR_CHARH       2
  107. #define PAR_BOXW        3
  108. #define PAR_BOXH        4
  109. #define PAR_APPLID      5
  110. #define PAR_XMAX        6
  111. #define PAR_YMAX        7
  112. #define PAR_DESKX       8
  113. #define PAR_DESKY       9
  114. #define PAR_DESKW       10
  115. #define PAR_DESKH       11
  116. #define PAR_BITPLANES   12
  117. #define PAR_MAXCOLOR    13
  118. #define PAR_ACTCOLOR    14
  119. #define PAR_COLOR       15
  120. #define PAR_ACCENTRY    16
  121. #define PAR_MULTI       17
  122. #define PAR_VAES        18
  123. #define PAR_VTOS        19
  124. #define PAR_VMAGX       20
  125. #define PAR_RMAGX       21
  126. #define PAR_MINT        22
  127. #define PAR_WINX        23
  128. #define PAR_SEARCH      24
  129. #define PAR_AGI         25
  130. #define PAR_ICFS        26
  131. #define PAR_BACKCOL     27
  132. #define PAR_ACTICOL     28
  133. #define PAR_SYSPT       29
  134.  
  135. /* ------------------------------------------------------------------- */
  136.  
  137. typedef struct
  138.   {
  139.     INT         vdi_handle;
  140.     INT         charw;
  141.     INT         charh;
  142.     INT         boxw;
  143.     INT         boxh;
  144.     INT         appl_id;
  145.     INT         xmax;
  146.     INT         ymax;
  147.     RECT        desktop;
  148.     INT         bitplanes;
  149.     INT         max_colors;
  150.     INT         act_colors;
  151.     BOOL        color_avail;
  152.     INT         acc_entry;
  153.     BOOL        multitask;
  154.     INT         aes_version;
  155.     UINT        tos_version;
  156.     INT         magx;
  157.     INT         magx_rel;
  158.     INT         mint;
  159.     BOOL        winx;
  160.     BOOL        search;
  161.     INT         agi;
  162.     INT         icfs;
  163.   } PARAMETER;
  164.  
  165. /* -------------------------------------------------------------------
  166.  * Dragdrop-Nachricht
  167.  * ------------------------------------------------------------------- */
  168.  
  169. typedef struct
  170.   {
  171.     BOOL        gemini;         /* D&D von Gemini?                     */
  172.     LONG        data_type;      /* Typ-Id von Mint                     */
  173.     BYTE        *data;          /* Adresse der Daten für D&D bei Gemini*/
  174.     LONG        data_len;       /* Länge von *data in Byte             */
  175.     BYTE        data_id  [128]; /* Klassifizierung                     */
  176.     BYTE        filename [128]; /* So wenn MiNT will...                */
  177.     INT         x;              /* X-Position der Maus                 */
  178.     INT         y;              /* Y-Position der Maus                 */
  179.     INT         state;          /* Status der Sondertasten             */
  180.     INT         obj;            /* Object innerhalb des Baumes         */
  181.     LONG        id;             /* Baum innerhalb des Fensters         */
  182.   } DRAG_DROP;
  183.  
  184. /* -------------------------------------------------------------------
  185.  * DialogInfo - Für die Dialogboxen
  186.  * ------------------------------------------------------------------- */
  187.  
  188. typedef struct
  189.   {
  190.     LONG        id;
  191.     VOID        *user;
  192.     DRAG_DROP   *dd;
  193.     LONG        denied;
  194.     OBJECT      *tree;
  195.     INT         kstate;
  196.     INT         edit_field;
  197.     INT         box;
  198.     RECT        clip;
  199.   } DIALOG_INFO;
  200.  
  201. /* -------------------------------------------------------------------
  202.  * Window-Info
  203.  * ------------------------------------------------------------------- */
  204.  
  205. typedef struct
  206.   {
  207.     LONG        id;
  208.     INT         handle;
  209.     LONG        pos_x;
  210.     LONG        pos_y;
  211.     LONG        doc_x;
  212.     LONG        doc_y;
  213.     INT         key;
  214.     INT         state;
  215.     INT         mTitle;
  216.     INT         mItem;
  217.     INT         mx, my;
  218.     LONG        line;
  219.     LONG        column;
  220.     BYTE        *line_ptr;
  221.     VOID        *line_user;
  222.     RECT        work_area;
  223.     RECT        draw_area;
  224.     RECT        clip;
  225.     VOID        *user;
  226.     OBJECT      *tree;
  227.     LONG        obj_id;
  228.     INT         item;
  229.     INT         box;
  230.     DRAG_DROP   *dd;
  231.     LONG        denied;
  232.   } WINDOW_INFO;
  233.  
  234. /* -------------------------------------------------------------------
  235.  * Funktions-Definitionen
  236.  * ------------------------------------------------------------------- */
  237.  
  238. typedef INT     ( *MPROC )( INT item );
  239. typedef INT     ( *APROC )( INT msg, WINDOW_INFO *inf );
  240. typedef INT     ( *DPROC )( INT msg, INT button, DIALOG_INFO *inf );
  241. typedef VOID    ( *RPROC )( WINDOW_INFO *inf );
  242. typedef VOID    ( *TPROC )( VOID );
  243. typedef LONG    ( *PPROC )( LONG id, RECT *r );
  244. typedef VOID    ( *IPROC )( LONG id, RECT *r );
  245. typedef INT     ( *VPROC )( BYTE *s1, BYTE *s2 );
  246.  
  247. /* -------------------------------------------------------------------
  248.  * Erweiterte Fenster-Struktur
  249.  * ------------------------------------------------------------------- */
  250.  
  251. #define WIN_FORCE       (1 <<  0)
  252. #define WIN_PAINT       (1 <<  1)
  253.  
  254. /* ------------------------------------------------------------------- */
  255.  
  256. typedef struct
  257.   {
  258.     LONG        id;
  259.     OBJECT      *tree;
  260.     INT         pos;
  261.     INT         start;
  262.     INT         depth;
  263.     INT         edit;
  264.   } XTREE;
  265.  
  266. /* ------------------------------------------------------------------- */
  267.  
  268. typedef struct
  269.   {
  270.     LONG        id;
  271.     LONG        owner;
  272.     INT         flags;
  273.     UINT        cfg;
  274.     RECT        work;
  275.     BYTE        *name;
  276.     BYTE        *info;
  277.     VOID        *user;
  278.     INT         align_x;
  279.     INT         align_y;
  280.     INT         scr_x;
  281.     INT         scr_y;
  282.     INT         font_id;
  283.     INT         font_pt;
  284.     INT         min_w;
  285.     INT         min_h;
  286.     INT         max_w;
  287.     INT         max_h;
  288.     INT         back;
  289.     INT         anz_trees;
  290.     XTREE       *trees;
  291.     OBJECT      *menu;
  292.     LONG        doc_w;
  293.     LONG        doc_h;
  294.     RPROC       redraw;
  295.     APROC       waction;
  296.     DPROC       daction;
  297.   } XWIN;
  298.  
  299. /* -------------------------------------------------------------------
  300.  * Werte für agi aus Parameter
  301.  * ------------------------------------------------------------------- */
  302.  
  303. #define AGI_0           0
  304. #define AGI_3           1
  305. #define AGI_4           2
  306.  
  307. /* -------------------------------------------------------------------
  308.  * Werte für die Alertbox
  309.  * ------------------------------------------------------------------- */
  310.  
  311. #define ALERT_NORM      0
  312. #define ALERT_STOP      1
  313.  
  314. #define ButtonCenter    0
  315. #define ButtonLeft      1
  316. #define ButtonRight     2
  317.  
  318. /* -------------------------------------------------------------------
  319.  * Flags fuer Baeume im Fenster
  320.  * ------------------------------------------------------------------- */
  321.  
  322. #define LINK_TOP        1
  323. #define LINK_LEFT       2
  324. #define LINK_RIGHT      3
  325. #define LINK_BOTTOM     4
  326.  
  327. /* -------------------------------------------------------------------
  328.  * Nachrichten von SysGem an eine Auswertungs-Funktion
  329.  * ------------------------------------------------------------------- */
  330.  
  331. #define SG_START         1
  332. #define SG_NOWIN         2
  333. #define SG_END           3
  334. #define SG_END2          4
  335. #define SG_REND          5
  336. #define SG_REND2         6
  337. #define SG_QUIT          7
  338. #define SG_TIMER         8
  339. #define SG_FTIMER        9
  340. #define SG_POSX         10
  341. #define SG_POSY         11
  342. #define SG_VISIBLE      12
  343. #define SG_INVISIBLE    13
  344. #define SG_TOP          14
  345. #define SG_UNTOP        15
  346. #define SG_SIZED        16
  347. #define SG_FULLED       17
  348. #define SG_MOVED        18
  349. #define SG_LCLICK1      19
  350. #define SG_LCLICK2      20
  351. #define SG_BUTTON       21
  352. #define SG_BUTTON2      22
  353. #define SG_RBUTTON      23
  354. #define SG_RBUTTON2     24
  355. #define SG_KEY          25
  356. #define SG_EDKEY        26
  357. #define SG_EDCHANGED    27
  358. #define SG_MENU         28
  359. #define SG_DRAGDROP     29
  360. #define SG_HELP         30
  361. #define SG_UNDO         31
  362. #define SG_EXCEPTION    32
  363. #define SG_TERMDENIED   33
  364. #define SG_DRAWOWN      34
  365. #define SG_SLIDER       35
  366. #define SG_SLIDER2      36
  367. #define SG_RSLIDER      37
  368. #define SG_RSLIDER2     38
  369. #define SG_3DSTATE      39
  370. #define SG_CLIPBOARD    40
  371. #define SG_CHILDEXIT    41
  372. #define SG_SELECT       42
  373. #define SG_DESELECT     43
  374. #define SG_RADIO        44
  375. #define SG_NEXTSTART    45
  376. #define SG_NEWDIAL      46
  377. #define SG_NEWFONT      47
  378. #define SG_EDREDRAW     48
  379.  
  380. /* -------------------------------------------------------------------
  381.  * Spezielle Nachrichten an die Module
  382.  * ------------------------------------------------------------------- */
  383.  
  384. #define SGM_IDENTIFY    60
  385. #define SGM_INIT        61
  386. #define SGM_START       62
  387. #define SGM_QUIT        63
  388. #define SGM_ADDRESS     64
  389. #define SGM_USER        65
  390.  
  391. /* -------------------------------------------------------------------
  392.  * Nachrichten von Auswertungs-Funktion(en) an SysGem
  393.  * ------------------------------------------------------------------- */
  394.  
  395. #define SG_CLOSE        80
  396. #define SG_REDRAW       81
  397. #define SG_REDRAWALL    82
  398. #define SG_TERM         83
  399. #define SG_CONT         84
  400. #define SG_ABORT        85
  401. #define SG_KEYUSED      86
  402. #define SG_KEYCONT      87
  403. #define SG_CALL         88
  404. #define SG_PIPE         89
  405. #define SG_SELECTED     90
  406. #define SG_TAKEKEY      91
  407. #define SG_TAKEDIAL     92
  408. #define SG_CALLUPD      93
  409.  
  410. /* -------------------------------------------------------------------
  411.  * Werte für 'SetTab'-Funktionen
  412.  * ------------------------------------------------------------------- */
  413.  
  414. #define TAB_LEFT        0
  415. #define TAB_RIGHT       1
  416. #define TAB_CENTER      2
  417. #define TAB_DECIMAL     3
  418.  
  419. /* -------------------------------------------------------------------
  420.  * Werte von TerminateSysGem
  421.  * ------------------------------------------------------------------- */
  422.  
  423. #define TERM_OK           0
  424. #define TERM_DENIED_ACC   1
  425. #define TERM_DENIED_SGM   2
  426.  
  427. /* -------------------------------------------------------------------
  428.  * Werte für RedrawObj
  429.  * ------------------------------------------------------------------- */
  430.  
  431. #define SET_STATE       (1 << 0)
  432. #define DEL_STATE       (1 << 1)
  433. #define UPD_STATE       (1 << 2)
  434. #define FLIP_STATE      (1 << 3)
  435. #define TAKE_STATE      (1 << 4)
  436. #define USER_STATE      (1 << 5)
  437.  
  438. /* -------------------------------------------------------------------
  439.  * Stati für Scroll-Funktionen
  440.  * ------------------------------------------------------------------- */
  441.  
  442. #define SCROLL_UP       1
  443. #define SCROLL_DOWN     2
  444. #define SCROLL_RIGHT    3
  445. #define SCROLL_LEFT     4
  446. #define SCROLL_PG_LEFT  5
  447. #define SCROLL_PG_RIGHT 6
  448. #define SCROLL_PG_UP    7
  449. #define SCROLL_PG_DOWN  8
  450.  
  451. /* -------------------------------------------------------------------
  452.  * Stati für SetWindowParm
  453.  * ------------------------------------------------------------------- */
  454.  
  455. #define SET_X           1
  456. #define SET_Y           2
  457. #define SET_W           3
  458. #define SET_H           4
  459.  
  460. /* -------------------------------------------------------------------
  461.  * Maus-Funktionen
  462.  * ------------------------------------------------------------------- */
  463.  
  464. #define ShowArrow()        graf_mouse ( ARROW,       NULL )
  465. #define ShowBee()          graf_mouse ( BUSYBEE,     NULL )
  466. #define ShowHour()         graf_mouse ( HOURGLASS,   NULL )
  467. #define ShowFinger()       graf_mouse ( POINT_HAND,  NULL )
  468. #define ShowHand()         graf_mouse ( FLAT_HAND,   NULL )
  469. #define ShowThinCross()    graf_mouse ( THIN_CROSS,  NULL )
  470. #define ShowThickCross()   graf_mouse ( THICK_CROSS, NULL )
  471. #define ShowOutlineCross() graf_mouse ( OUTLN_CROSS, NULL )
  472. #define ShowMouse()        graf_mouse ( M_ON,        NULL )
  473. #define HideMouse()        graf_mouse ( M_OFF,       NULL )
  474.  
  475. /* -------------------------------------------------------------------
  476.  * Objekt-Manipulation
  477.  * ------------------------------------------------------------------- */
  478.  
  479. #define SetState(x,y,z)       x [y].ob_state |= z
  480. #define DelState(x,y,z)       x [y].ob_state &= ~z
  481. #define GetState(x,y,z)       (( x [y].ob_state & z ) != 0 )
  482. #define SetFlags(x,y,z)       x [y].ob_flags |= z
  483. #define DelFlags(x,y,z)       x [y].ob_flags &= ~z
  484. #define GetFlags(x,y,z)       (( x [y].ob_flags & z ) != 0 )
  485. #define SetGlobalState(x,y,z) x [y].ob_state  = z
  486. #define SetGlobalFlags(x,y,z) x [y].ob_flags  = z
  487.  
  488. /* -------------------------------------------------------------------
  489.  * Erweiterte Mausfunktionen
  490.  * ------------------------------------------------------------------- */
  491.  
  492. VOID    ShowRotor       ( VOID );
  493. VOID    UpdateRotor     ( VOID );
  494. VOID    EndRotor        ( VOID );
  495.  
  496. VOID    ShowClock       ( VOID );
  497. VOID    UpdateClock     ( VOID );
  498. VOID    EndClock        ( VOID );
  499.  
  500. VOID    ShowCoffee      ( VOID );
  501. VOID    UpdateCoffee    ( VOID );
  502. VOID    EndCoffee       ( VOID );
  503.  
  504. VOID    ShowDisc        ( VOID );
  505. VOID    UpdateDisc      ( VOID );
  506. VOID    EndDisc         ( VOID );
  507.  
  508. VOID    ShowAbacus      ( VOID );
  509. VOID    UpdateAbacus    ( VOID );
  510. VOID    EndAbacus       ( VOID );
  511.  
  512. VOID    ShowDice        ( VOID );
  513. VOID    UpdateDice      ( VOID );
  514. VOID    EndDice         ( VOID );
  515.  
  516. VOID    ShowPaper       ( VOID );
  517. VOID    UpdatePaper     ( VOID );
  518. VOID    EndPaper        ( VOID );
  519.  
  520. /* -------------------------------------------------------------------
  521.  * An- und Abmelden
  522.  * ------------------------------------------------------------------- */
  523.  
  524. INT     InitGem         ( BYTE *acc, LONG prg_id, BYTE *prg_name );
  525. VOID    ExitGem         ( VOID );
  526. UINT    SysGemVersion   ( VOID );
  527.  
  528. /* ------------------------------------------------------------------- */
  529.  
  530. VOID    GetParStruct    ( PARAMETER *par );
  531. INT     GetParam        ( INT par );
  532.  
  533. /* ------------------------------------------------------------------- */
  534.  
  535. VOID    SetKey          ( LONG l1, LONG l2 );
  536.  
  537. /* ------------------------------------------------------------------- */
  538.  
  539. VOID    SetAccProc      ( TPROC acc_open, TPROC acc_close );
  540.  
  541. BOOL    NewDialog       ( OBJECT *tree );
  542. BOOL    DelDialog       ( OBJECT *tree );
  543. VOID    InitMenuLine    ( OBJECT *menu_line );
  544.  
  545. /* ------------------------------------------------------------------- */
  546.  
  547. VOID    ClipboardChanged( VOID );
  548.  
  549. INT     FileSelect      ( BYTE *pfname, BYTE *pname, BYTE *fname, CONST BYTE *ext, BYTE *title );
  550.  
  551. /* ------------------------------------------------------------------- */
  552.  
  553. VOID    UseWindowMenu   ( VOID );
  554. VOID    UseWindowSlider ( VOID );
  555. VOID    UseModule       ( VOID );
  556.  
  557. /* -------------------------------------------------------------------
  558.  * Einstellungen
  559.  * ------------------------------------------------------------------- */
  560.  
  561. VOID    SetAlertTitle   ( BYTE *name );
  562. VOID    SetProgramName  ( BYTE *name );
  563. VOID    SetIconifyName  ( BYTE *name );
  564. VOID    Enable3D        ( VOID );
  565. VOID    Disable3D       ( VOID );
  566. VOID    TellKeyStrokes  ( BOOL tell );
  567. VOID    DialPosXY       ( BOOL center );
  568. VOID    SetFulledX      ( INT x );
  569. VOID    SetFulledY      ( INT y );
  570. VOID    SetFulledW      ( INT w );
  571. VOID    SetFulledH      ( INT h );
  572. VOID    WaitAfterClose  ( BOOL wait );
  573. VOID    FrameTextColor  ( INT color );
  574. VOID    ShortCutColor   ( INT color );
  575. VOID    LinkImage       ( LONG win_id, BITBLK *image, BYTE *text );
  576. VOID    LinkMainImage   ( BITBLK *image, BYTE *text );
  577. BOOL    SysGem3D        ( VOID );
  578. VOID    UseRoundButtons ( BOOL use );
  579. INT     SetSelColor     ( INT color );
  580. INT     SetSelTextColor ( INT color );
  581. VOID    SetWinBackground( LONG win_id, INT color );
  582. VOID    UseOwnEditFields( VOID );
  583. VOID    SetCursorColor  ( INT color );
  584. VOID    SetMonoEditFrame( BOOL paint );
  585.  
  586. /* -------------------------------------------------------------------
  587.  * Timer-Routinen
  588.  * ------------------------------------------------------------------- */
  589.  
  590. VOID    EnableTimer     ( VOID );
  591. VOID    DisableTimer    ( VOID );
  592.  
  593. VOID    SetDispatchTime ( INT ms_low, INT ms_high );
  594. VOID    SetTimer        ( INT ms_low, INT ms_high );
  595. VOID    SetProcTimer    ( TPROC proc );
  596.  
  597. VOID    SetWindowTimer  ( LONG win_id, INT ms_low, INT ms_high );
  598. VOID    UseFastTimer    ( LONG win_id, BOOL enable );
  599.  
  600. VOID    SetXTimer       ( LONG id, TPROC proc, INT ms_low, INT ms_high, VOID *user1, VOID *user2 );
  601. VOID    DelXTimer       ( LONG id );
  602.  
  603. LONG    GetXTimerId     ( VOID );
  604. VOID    *GetXTimerUser1 ( VOID );
  605. VOID    *GetXTimerUser2 ( VOID );
  606.  
  607. /* -------------------------------------------------------------------
  608.  * Usernachrichten
  609.  * ------------------------------------------------------------------- */
  610.  
  611. VOID    ShowMessage     ( BYTE *text );
  612. VOID    EndMessage      ( VOID );
  613.  
  614. /* -------------------------------------------------------------------
  615.  * Textfenster
  616.  * ------------------------------------------------------------------- */
  617.  
  618. VOID    BeginListUpdate ( LONG win_id );
  619. VOID    EndListUpdate   ( LONG win_id );
  620.  
  621. BYTE    *LinkList       ( LONG win_id, BYTE *text );
  622. BYTE    *AddToList      ( LONG win_id, BYTE *text );
  623. BYTE    *InsInList      ( LONG win_id, UINT line, BYTE *text );
  624. BYTE    *ChgInList      ( LONG win_id, UINT line, BYTE *text );
  625.  
  626. BYTE    *xLinkList      ( LONG win_id, BYTE *text, VOID *user );
  627. BYTE    *xAddToList     ( LONG win_id, BYTE *text, VOID *user );
  628. BYTE    *xInsInList     ( LONG win_id, UINT line, BYTE *text, VOID *user );
  629. BYTE    *xChgInList     ( LONG win_id, UINT line, BYTE *text, VOID *user );
  630.  
  631. BOOL    SetListTab      ( LONG win_id, INT pos, INT just );
  632.  
  633. BOOL    DelInList       ( LONG win_id, UINT line );
  634. BOOL    SetLineIcon     ( LONG win_id, UINT line, OBJECT *tree, INT obj );
  635.  
  636. UINT    CountLines      ( LONG win_id );
  637. VOID    RedrawLine      ( LONG win_id, UINT line );
  638. VOID    DelCompleteList ( LONG win_id );
  639.  
  640. INT     SetLineEffect   ( LONG win_id, UINT line, INT effect );
  641. INT     SetLineColor    ( LONG win_id, UINT line, INT color );
  642. INT     SetLineFlags    ( LONG win_id, UINT line, INT flags );
  643. INT     SetLineUser     ( LONG win_id, UINT line, INT user );
  644.  
  645. BOOL    SetWindowFont   ( LONG win_id, INT font_id, INT font_pt );
  646.  
  647. BYTE    *GetLinePtr     ( LONG win_id, UINT line );
  648. VOID    *GetListUserPtr ( LONG win_id, UINT line );
  649. BOOL    SetListUserPtr  ( LONG win_id, UINT line, VOID *user );
  650.  
  651. LONG    Display         ( BYTE *fname, BYTE *wname, BYTE *winfo, INT len, LONG win_id, INT x, INT y, INT w, INT h, APROC action );
  652.  
  653. INT     cmp_strings_up  ( BYTE *str1, BYTE *str2 );
  654. INT     cmp_strings_dn  ( BYTE *str1, BYTE *str2 );
  655. VOID    do_qsort        ( LONG win_id, VPROC compare );
  656.  
  657. /* -------------------------------------------------------------------
  658.  * Sliderboxen
  659.  * ------------------------------------------------------------------- */
  660.  
  661. BOOL    LinkSlider      ( OBJECT *tree, INT up, INT dn, INT show, INT hide, INT max, INT box, VOID *buf, INT len, BOOL icons );
  662. BOOL    LinkHorSlider   ( OBJECT *tree, INT box, INT left, INT right, INT show, INT hide );
  663. BOOL    SetSliderTab    ( OBJECT *tree, INT box, INT pos, INT just );
  664. VOID    SetSliderFont   ( OBJECT *tree, INT box, INT font_id, INT font_pt, BOOL draw );
  665. VOID    RedrawSliderBox ( OBJECT *tree, INT box );
  666. VOID    ScrollSlider    ( OBJECT *tree, INT box, INT what );
  667. BOOL    AddSliderItem   ( OBJECT *tree, INT box, INT anz_items );
  668. INT     SetSliderPos    ( OBJECT *tree, INT box, INT pos, BOOL draw );
  669. BOOL    UnLinkSlider    ( OBJECT *tree, INT box );
  670. BOOL    SelectSldItem   ( OBJECT *tree, INT box, INT line, BOOL draw );
  671. BOOL    DeSelSldItem    ( OBJECT *tree, INT box, BOOL draw );
  672. INT     DrawSlider      ( OBJECT *tree, INT hide, LONG p1, LONG p2, BOOL draw );
  673. VOID    FastDrawSldBox  ( OBJECT *tree, INT box );
  674.  
  675. /* -------------------------------------------------------------------
  676.  * Texte in Editfeldern
  677.  * ------------------------------------------------------------------- */
  678.  
  679. VOID    SetText         ( OBJECT *tree, INT index, BYTE *text );
  680. BYTE    *GetText        ( OBJECT *tree, INT index, BYTE *text );
  681. VOID    ClearEditFields ( OBJECT *tree );
  682. VOID    GetEditFields   ( OBJECT *tree, VOID (*callback)(INT obj, BYTE *s ));
  683. BOOL    SetEditField    ( OBJECT *tree, INT field );
  684.  
  685. /* -------------------------------------------------------------------
  686.  * Fenster
  687.  * ------------------------------------------------------------------- */
  688.  
  689. BOOL    XWindow         ( XWIN *xwin );
  690. VOID    InitXWindow     ( XWIN *xwin );
  691. VOID    SetWindowName   ( INT handle, BYTE *name );
  692. VOID    SetWindowInfo   ( INT handle, BYTE *info );
  693. VOID    CloseAllWindows ( VOID );
  694. BOOL    WindowVisible   ( INT handle );
  695. INT     GetTopWindow    ( VOID );
  696. LONG    GetTopWindowId  ( VOID );
  697. BOOL    TopWindow       ( INT handle );
  698. BOOL    CloseWindow     ( INT handle );
  699. BOOL    CloseWindowById ( LONG id );
  700. INT     GetHandle       ( LONG win_id );
  701. LONG    GetWindowId     ( INT handle );
  702. VOID    SetWinMinSize   ( LONG win_id, INT w, INT h );
  703. VOID    SetWinMaxSize   ( LONG win_id, INT w, INT h );
  704. VOID    ScrollWindow    ( INT handle, INT what );
  705. LONG    SetWindowParm   ( INT handle, INT what, LONG value );
  706. INT     OpenWindow      ( LONG id, BYTE *name, BYTE *info, INT flags, OBJECT *menu, INT align, BOOL part, INT scr_x, INT scr_y, LONG doc_x, LONG doc_y, INT x, INT y, INT w, INT h, VOID *user, RPROC redraw, APROC action );
  707. BOOL    LinkTree        ( LONG win_id, OBJECT *tree, LONG id, INT pos );
  708. VOID    CycleWindow     ( BOOL show_window );
  709. VOID    SetIconRedraw   ( LONG win_id, IPROC proc );
  710. VOID    SetWinUser      ( LONG win_id, VOID *user );
  711. VOID    *GetWinUser     ( LONG win_id );
  712. VOID    ReSizeWindow    ( LONG win_id, RECT *size );
  713.  
  714. /* -------------------------------------------------------------------
  715.  * Schreiben ins Fenster
  716.  * ------------------------------------------------------------------- */
  717.  
  718. BOOL    OpenLogWindow   ( LONG win_id, BYTE *title, BYTE *info, INT columns, INT rows, INT x, INT y, APROC action );
  719. VOID    wprintf         ( LONG win_id, BYTE *format, ... );
  720. VOID    wcls            ( LONG win_id );
  721. VOID    wposxy          ( LONG win_id, INT x, INT y );
  722. VOID    wgetxy          ( LONG win_id, INT *x, INT *y );
  723. BYTE    wgetchar        ( LONG win_id, INT x, INT y, INT *effect );
  724. VOID    HideCursor      ( LONG win_id );
  725. VOID    ShowCursor      ( LONG win_id );
  726.  
  727. /* -------------------------------------------------------------------
  728.  * Popup's
  729.  * ------------------------------------------------------------------- */
  730.  
  731. INT     PopUp           ( OBJECT *tree, INT x, INT y, INT start, INT first );
  732. INT     xPopUp          ( OBJECT *tree, INT obj, OBJECT *tree2, INT start, INT *first );
  733. INT     Cycle           ( OBJECT *tree, INT obj, OBJECT *pop_tree, INT first, INT last, INT *ret );
  734. INT     CycleBack       ( OBJECT *tree, INT obj, OBJECT *pop_tree, INT first, INT last, INT *ret );
  735. INT     Listbox         ( BYTE *strings, INT count, INT len, OBJECT *tree, INT box );
  736.  
  737. /* -------------------------------------------------------------------
  738.  * Kommunikation
  739.  * ------------------------------------------------------------------- */
  740.  
  741. INT     SearchProgram   ( BYTE *prg_name );
  742.  
  743. /* -------------------------------------------------------------------
  744.  * Verwaltung
  745.  * ------------------------------------------------------------------- */
  746.  
  747. VOID    HandleSysGem    ( VOID );
  748. INT     TerminateSysGem ( VOID );
  749. VOID    DispatchEvents  ( VOID );
  750. VOID    SetProcEvent    ( TPROC proc );
  751.  
  752. INT     SelectPrinter   ( VOID );
  753.  
  754. /* -------------------------------------------------------------------
  755.  * Alerts
  756.  * ------------------------------------------------------------------- */
  757.  
  758. INT     Alert           ( INT priority, INT def, BYTE *str );
  759. VOID    SetButton       ( INT just );
  760. VOID    Set3DAlertColor ( INT icn1, INT icn2, INT icn3 );
  761. VOID    SetAlertColor   ( INT icn1, INT icn2, INT icn3 );
  762.  
  763. /* -------------------------------------------------------------------
  764.  * Redraw
  765.  * ------------------------------------------------------------------- */
  766.  
  767. BOOL    LinkOwnRedraw   ( OBJECT *tree, INT obj );
  768. BOOL    RemoveOwnRedraw ( OBJECT *tree, INT obj );
  769.  
  770. VOID    RedrawArea      ( INT handle, RECT *area );
  771. VOID    SetClipping     ( RECT *r );
  772. VOID    RedrawWindow    ( INT handle );
  773. VOID    RedrawObj       ( OBJECT *tree, INT obj, INT depth, INT state, INT flag );
  774. VOID    DisableObj      ( OBJECT *tree, INT obj, BOOL draw );
  775. VOID    EnableObj       ( OBJECT *tree, INT obj, BOOL draw );
  776. VOID    HideObj         ( OBJECT *tree, INT obj, BOOL draw );
  777. VOID    ShowObj         ( OBJECT *tree, INT obj, BOOL draw );
  778. VOID    SetTextColor    ( OBJECT *tree, INT obj, INT color );
  779.  
  780. /* -------------------------------------------------------------------
  781.  * Dialoge
  782.  * ------------------------------------------------------------------- */
  783.  
  784. BOOL    WindowDialog    ( LONG id, INT xpos, INT ypos, BYTE *name, BYTE *info, BOOL shut, BOOL force, OBJECT *tree, OBJECT *menu, INT edit, VOID *user, DPROC proc );
  785. BOOL    MultipleDialog  ( LONG id, INT xpos, INT ypos, BYTE *name, BYTE *info, OBJECT *top, INT active, OBJECT *tree, INT edit, VOID *user, DPROC proc );
  786.  
  787. BOOL    BeginDialog     ( LONG win_id, OBJECT *tree, INT edit, BYTE *title );
  788. INT     HandleDialog    ( LONG win_id );
  789. VOID    FinishDialog    ( LONG win_id );
  790. INT     DoDialog        ( OBJECT *tree, INT edit, BYTE *title );
  791. VOID    ChangeButton    ( OBJECT *tree, INT obj, BYTE *text );
  792.  
  793. /* -------------------------------------------------------------------
  794.  * Nachgebaute Funktionen
  795.  * ------------------------------------------------------------------- */
  796.  
  797. INT     appl_getinfo    ( INT ap_gtype, INT *ap_gout1, INT *ap_gout2, INT *ap_gout3, INT *ap_gout4 );
  798.  
  799. /* -------------------------------------------------------------------
  800.  * FontSelektor
  801.  * ------------------------------------------------------------------- */
  802.  
  803. BOOL    FontSelect      ( INT *id, INT *pt, BYTE *title, BYTE *example, BOOL internal );
  804.  
  805. /* -------------------------------------------------------------------
  806.  * Bildschirmroutinen
  807.  * ------------------------------------------------------------------- */
  808.  
  809. BOOL    NewArea         ( AREA *p );
  810. VOID    FreeArea        ( AREA *p );
  811. VOID    ClearArea       ( AREA *p );
  812. VOID    CopyArea        ( INT vdi_handle, AREA *p, INT x, INT y );
  813. BOOL    SaveArea        ( INT vdi_handle, AREA *p, RECT *r );
  814. VOID    RestoreArea     ( INT vdi_handle, AREA *p );
  815. VOID    MoveScreen      ( INT vdi_handle, RECT *r, INT x, INT y );
  816.  
  817. /* -------------------------------------------------------------------
  818.  * Resourcen
  819.  * ------------------------------------------------------------------- */
  820.  
  821. #define RSC_NOCICON     -1
  822. #define RSC_LOADERR     -2
  823. #define RSC_NOMEMORY    -3
  824.  
  825. /* ------------------------------------------------------------------- */
  826.  
  827. INT     LoadResource    ( BYTE *rsc_name, BOOL long_rsc );
  828. OBJECT  *RscAdr         ( INT tree_type, INT index );
  829. VOID    RscFree         ( VOID );
  830. BOOL    InitResource    ( OBJECT *rsc_tree, UINT num_obs, UINT num_trees, VOID *rgb_table, BOOL long_rsc );
  831.  
  832. /* -------------------------------------------------------------------
  833.  * Menüzeilen
  834.  * ------------------------------------------------------------------- */
  835.  
  836. VOID    SetDeskTopMenu  ( OBJECT *menu, MPROC proc );
  837. VOID    RemDeskTopMenu  ( VOID );
  838.  
  839. /* -------------------------------------------------------------------
  840.  * Sonstiges
  841.  * ------------------------------------------------------------------- */
  842.  
  843. VOID    CalcArea        ( OBJECT *tree, INT obj, RECT *r );
  844. VOID    RectIntersect   ( RECT *r1, RECT *r2 );
  845. VOID    WhiteArea       ( RECT *r, INT color );
  846. BOOL    RectVisible     ( RECT *r );
  847.  
  848. /* -------------------------------------------------------------------
  849.  * Online-Help
  850.  * ------------------------------------------------------------------- */
  851.  
  852. VOID    SetOnlineHelp   ( BYTE *prg_name1, BYTE *prg_name2, BYTE *file_name );
  853. BOOL    CallOnlineHelp  ( BYTE *help );
  854.  
  855. /* -------------------------------------------------------------------
  856.  * CRC-Routinen
  857.  * ------------------------------------------------------------------- */
  858.  
  859. UINT    crc_16          ( BYTE *s, UINT len );
  860. ULONG   crc_32          ( BYTE *s, UINT len );
  861.  
  862. /* -------------------------------------------------------------------
  863.  * System-Routinen
  864.  * ------------------------------------------------------------------- */
  865.  
  866. BOOL    GetCookie       ( LONG id, VOID *value );
  867.  
  868. /* -------------------------------------------------------------------
  869.  * Font-Routinen
  870.  * ------------------------------------------------------------------- */
  871.  
  872. BOOL    FontExists      ( INT font_id );
  873. INT     GetFontId       ( BYTE *font_name );
  874. BYTE    *GetFontName    ( INT font_id );
  875. BOOL    VectorFont      ( INT font_id );
  876.  
  877. /* ------------------------------------------------------------------- */
  878.  
  879. VOID    NormalFont      ( VOID );
  880. VOID    SmallFont       ( VOID );
  881. VOID    SetFont         ( INT font_id, INT pt );
  882.  
  883. /* ------------------------------------------------------------------- */
  884.  
  885. INT     StringWidth     ( BYTE *text );
  886. INT     StringHeight    ( VOID );
  887. INT     CenterX         ( INT x1, INT x2, BYTE *text );
  888. INT     CenterY         ( INT y1, INT y2 );
  889.  
  890. /* ------------------------------------------------------------------- */
  891.  
  892. VOID    v_xtext         ( INT color, INT x, INT y, BYTE *text );
  893. VOID    v_stext         ( INT color, INT x, INT y, BYTE *text );
  894.  
  895. /* ------------------------------------------------------------------- */
  896.  
  897. VOID    SetSysFont      ( INT font_id );
  898. VOID    SendFontChanged ( INT font_id, INT font_pt );
  899. VOID    ResetSysFont    ( VOID );
  900.  
  901. /* ------------------------------------------------------------------- */
  902.  
  903. #endif
  904.  
  905. /* ------------------------------------------------------------------- */
  906.